package main

import (
	"fmt"
	"sync"
	"time"
)

func main3() {
	// 定义一个独占锁
	lock := sync.Mutex{}

	go func() {
		// 利用独占锁lock进行锁定
		lock.Lock()
		// 保证锁的释放
		defer lock.Unlock()

		for i := 1; i <= 5; i++ {
			time.Sleep(time.Millisecond) // 模拟耗时操作
			fmt.Println(i)
		}
	}()

	go func() {
		// 利用独占锁lock进行锁定
		lock.Lock()
		// 保证锁的释放
		defer lock.Unlock()

		for i := 1; i <= 5; i++ {
			time.Sleep(time.Millisecond) // 模拟耗时操作
			fmt.Println(i * 10)
		}
	}()

	time.Sleep(time.Second * 2)
}
